home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1989 …il & Dave's Excellent CD / Excellent CD HFS.raw / Moof / Goodies / MPW Goodies / Interfaces / AIncludes / ScriptEqu.a < prev    next >
Encoding:
Text File  |  1988-11-30  |  27.5 KB  |  1,060 lines  |  [TEXT/MPS ]

  1. ; Version: 1.12
  2. ; Created: Tuesday, October 4, 1988 at 9:55:49 AM
  3. ;
  4. ; File ScriptEqu.a
  5. ;
  6. ; Assembler Interface to the Macintosh Libraries
  7. ; Copyright Apple Computer, Inc. 1986-1988
  8. ; All Rights Reserved
  9. ;
  10. ; -----------------------------------------------------------------------------
  11. ; Script Manager equates file.
  12. ;
  13. ; This file contains all equates for the script environment, shared
  14. ; equates for the script interface systems, equates that are special for
  15. ; the Roman Interface System, and all equates for the script interface
  16. ; system package.
  17. ; -----------------------------------------------------------------------------
  18.  
  19. ; Note that the version number is divided into two bytes: The high byte is
  20. ; bumped when the changes make the next version incompatible with previous
  21. ; versions. If compatability is maintained, the low byte is bumped.
  22.  
  23. smgrVers        EQU         $0210                    ; current version number.
  24.  
  25. ; -----------------------------------------------------------------------------
  26. ; Constants for the Script Manager trap call, _ScriptUtil.
  27. ; -----------------------------------------------------------------------------
  28.  
  29. ; Script Interface System numbers.
  30.  
  31. smRoman         EQU         0                        ; Font script is Roman.
  32. smJapanese        EQU         1                        ; Font script is Japanese.
  33. smChinese        EQU         2                        ; Font script is Chinese.
  34. smKorean        EQU         3                        ; Font script is Korean.
  35. smArabic        EQU         4                        ; Font script is Arabic.
  36. smHebrew        EQU         5                        ; Font script is Hebrew.
  37. smGreek         EQU         6                        ; Font script is Greek.
  38. smRussian        EQU         7                        ; Font script is Russian.
  39. smRSymbol        EQU         8                        ; Font script is Right-left symbol.
  40. smDevanagari    EQU         9                        ; Font script is Devanagari.
  41. smGurmukhi        EQU         10                        ; Font script is Gurmukhi.
  42. smGujarati        EQU         11                        ; Font script is Gujarati.
  43. smOriya         EQU         12                        ; Font script is Oriya.
  44. smBengali        EQU         13                        ; Font script is Bengali.
  45. smTamil         EQU         14                        ; Font script is Tamil.
  46. smTelugu        EQU         15                        ; Font script is Telugu.
  47. smKannada        EQU         16                        ; Font script is Kannada.
  48. smMalayalam     EQU         17                        ; Font script is Malayalam.
  49. smSinhalese     EQU         18                        ; Font script is Sinhalese.
  50. smBurmese        EQU         19                        ; Font script is Burmese.
  51. smKhmer         EQU         20                        ; Font script is Khmer.
  52. smThai            EQU         21                        ; Font script is Thai.
  53. smLaotian        EQU         22                        ; Font script is Laotian.
  54. smGeorgian        EQU         23                        ; Font script is Georgian.
  55. smArmenian        EQU         24                        ; Font script is Armenian.
  56. smMaldivian     EQU         25                        ; Font script is Maldivian.
  57. smTibetan        EQU         26                        ; Font script is Tibetan.
  58. smMongolian     EQU         27                        ; Font script is Mongolian.
  59. smAmharic        EQU         28                        ; Font script is Amharic.
  60. smSlavic        EQU         29                        ; Font script is Slavic.
  61. smVietnamese    EQU         30                        ; Font script is Vietnamese.
  62. smSindhi        EQU         31                        ; Font script is Sindhi.
  63. smUninterp        EQU         32                        ; Font script is uninterpreted Symbols.
  64.  
  65. ; Language Codes
  66.  
  67. langEnglish     EQU         0
  68. langFrench        EQU         1
  69. langGerman        EQU         2
  70. langItalian     EQU         3
  71. langDutch        EQU         4
  72. langSwedish     EQU         5
  73. langSpanish     EQU         6
  74. langDanish        EQU         7
  75. langPortugese    EQU         8
  76. langNorwegian    EQU         9
  77. langHebrew        EQU         10
  78. langJapanese    EQU         11
  79. langArabic        EQU         12
  80. langFinnish     EQU         13
  81. langGreek        EQU         14
  82. langIcelandic    EQU         15
  83. langMalta        EQU         16
  84. langTurkish     EQU         17
  85. langYugoslavian   EQU        18
  86. langChinese     EQU         19
  87. langUrdu        EQU         20
  88. langHindi        EQU         21
  89. langThai        EQU         22
  90.  
  91. ; Calendar Codes
  92.  
  93. calGregorian    EQU         0
  94. calArabicCivil    EQU         1
  95. calArabicLunar    EQU         2
  96. calJapanese     EQU         3
  97. calJewish        EQU         4
  98. calCoptic        EQU         5
  99.  
  100. ; Integer Format Codes
  101.  
  102. intWestern        EQU         0
  103. intArabic        EQU         1
  104. intRoman        EQU         2
  105. intJapanese     EQU         3
  106. intEuropean     EQU         4
  107. intOutputMask    EQU         $8000
  108.  
  109. ; CharByte byte types.
  110.  
  111. smSingleByte    EQU         0
  112. smFirstByte     EQU         -1
  113. smLastByte        EQU         1
  114. smMiddleByte    EQU         2
  115.  
  116. ; CharType field masks
  117.  
  118. smcTypeMask     EQU         $000F
  119. smcReserved     EQU         $00F0
  120. smcClassMask    EQU         $0F00
  121. smcReserved12    EQU         $1000
  122. smcRightMask    EQU         $2000
  123. smcUpperMask    EQU         $4000
  124. smcDoubleMask    EQU         $8000
  125.  
  126. ; CharType character types.
  127.  
  128. smCharPunct     EQU         0
  129. smCharAscii     EQU         1
  130. smCharEuro        EQU         7
  131.  
  132. ; CharType punctuation types.
  133.  
  134. smPunctNormal    EQU         $0000
  135. smPunctNumber    EQU         $0100
  136. smPunctSymbol    EQU         $0200
  137. smPunctBlank    EQU         $0300                    ; NBSP is PunctNormal
  138.  
  139. ; CharType directions
  140.  
  141. smCharLeft        EQU         $0000
  142. smCharRight     EQU         $2000
  143.  
  144. ; CharType case modifers.
  145.  
  146. smCharLower     EQU         $0000
  147. smCharUpper     EQU         $4000
  148.  
  149. ; CharType character size modifiers (1 or multiple bytes).
  150.  
  151. smChar1byte     EQU         $0000
  152. smChar2byte     EQU         $8000
  153.  
  154. ; Char2Pixel directions.
  155.  
  156. smLeftCaret     EQU         0                        ; Place caret for left block.
  157. smRightCaret    EQU         -1                        ; Place caret for right block.
  158. smHilite        EQU         1                        ; Direction is TESysJust.
  159.  
  160. ; Transliterate target types.
  161.  
  162. smTransAscii    EQU         0
  163. smTransNative    EQU         1
  164. smTransCase     EQU         $FF
  165.  
  166. ; Transliterate target modifiers.
  167.  
  168. smTransLower    EQU         $4000
  169. smTransUpper    EQU         $8000
  170.  
  171. ; Transliterate source masks.
  172.  
  173. smMaskAscii     EQU         $0001                    ; 2^smTransAscii
  174. smMaskNative    EQU         $0002                    ; 2^smTransNative
  175.  
  176. ; Result values from GetEnvirons, SetEnvirons, GetScript and SetScript calls.
  177.  
  178.  
  179. smNotInstalled    EQU         0                        ; routine not available in script
  180. smBadVerb        EQU         -1                        ; Bad verb passed to a routine.
  181. smBadScript     EQU         -2                        ; Bad script code passed to a routine.
  182.  
  183. ; Result values from StyledLineBreak
  184.  
  185. smBreakWord     EQU         0                        ; could break at word boundary
  186. smBreakChar     EQU         1                        ; had to break at char boundary
  187. smBreakOverflow   EQU        2                        ; text too short, width subtracted
  188.  
  189. ; -----------------------------------------------------------------------------
  190. ; GetEnvirons and SetEnvirons verbs.
  191. ; -----------------------------------------------------------------------------
  192.  
  193. smVersion        EQU         0                        ; Environment version number.
  194. smMunged        EQU         2                        ; Globals change count.
  195. smEnabled        EQU         4                        ; Environment enabled flag.
  196. smBidirect        EQU         6                        ; One bidirectional script.
  197. smFontForce     EQU         8                        ; Force font flag.
  198. smIntlForce     EQU         10                        ; Force intl flag.
  199. smForced        EQU         12                        ; forced to system script.
  200. smDefault        EQU         14                        ; defaulted to Roman script.
  201. smPrint         EQU         16                        ; Printer action routine.
  202. smSysScript     EQU         18                        ; System script.
  203. smLastScript    EQU         20                        ; Last keyboard script.
  204. smKeyScript     EQU         22                        ; Keyboard script.
  205. smSysRef        EQU         24                        ; System folder refNum.
  206. smKeyCache        EQU         26                        ; Keyboard table cache pointer.
  207. smKeySwap        EQU         28                        ; Swapping table pointer.
  208. smGenFlags        EQU         30                        ; general flags long
  209. smOverride        EQU         32                        ; script override flags
  210. smCharPortion    EQU         34                        ; Ch vs SpExtra proportion
  211. smLastEVerb     EQU         smCharPortion            ; Last environment verb.
  212.  
  213. ; GetScript and SetScript verbs.
  214. ; Note: verbs private to script systems are negative, while
  215. ; those general across script systems are non-negative
  216.  
  217. smScriptVersion   EQU        0                        ; Script software version.
  218. smScriptMunged    EQU         2                        ; Script entry changed count.
  219. smScriptEnabled   EQU        4                        ; Script enabled flag.
  220. smScriptRight    EQU         6                        ; Right to left flag.
  221. smScriptJust    EQU         8                        ; Justification flag.
  222. smScriptRedraw    EQU         10                        ; Word redraw flag.
  223. smScriptSysFond   EQU        12                        ; Preferred system font.
  224. smScriptAppFond   EQU        14                        ; Preferred Application font.
  225. smScriptBundle    EQU         16                        ; Beginning of dictionary verbs.
  226. smScriptNumber    EQU         16                        ; Script itl0 id, from dictionary.
  227. smScriptDate    EQU         18                        ; Script itl1 id, from dictionary.
  228. smScriptSort    EQU         20                        ; Script itl2 id, from dictionary.
  229. smScriptFlags    EQU         22                        ; flags word
  230. smScriptToken    EQU         24                        ; Script itl3 id, from dictionary.
  231. smScriptRsvd3    EQU         26                        ; reserved.
  232. smScriptLang    EQU         28                        ; Current language for script
  233. smScriptNumDate   EQU        30                        ; Script Number/Date formats
  234. smScriptKeys    EQU         32                        ; Script KEYC id.
  235. smScriptIcon    EQU         34                        ; Script SICN id.
  236. smScriptPrint    EQU         36                        ; Script printer action routine.
  237. smScriptTrap    EQU         38                        ; Trap entry pointer.
  238. smScriptCreator   EQU        40                        ; Script file creator.
  239. smScriptFile    EQU         42                        ; Script file name.
  240. smScriptName    EQU         44                        ; Script name.
  241. smLastSVerb     EQU         smScriptName            ; Last script verb.
  242.  
  243. ; -----------------------------------------------------------------------------
  244. ; Bits in the smScriptFlags word (bits above 7 are non-static)
  245. ; -----------------------------------------------------------------------------
  246.  
  247. smsfIntellCP    EQU         0                        ; script has intellegent cut & paste
  248. smsfSingByte    EQU         1                        ; script has only single bytes
  249. smsfNatCase     EQU         2                        ; native chars have upper & lower case
  250. smsfContext     EQU         3                        ; contextual script (e.g. AIS-based)
  251. smsfNoForceFont   EQU        4                        ; will not force characters
  252. smsfB0Digits    EQU         5                        ; has alternate digits at B0-B9
  253. smsfForms        EQU         13                        ; uses contextual forms for letters
  254. smsfLigatures    EQU         14                        ; uses contextual ligatures
  255. smsfReverse     EQU         15                        ; reverses native text, right-left
  256.  
  257. ; Bits in the smGenFlags long. First byte is set from itlc flags byte
  258. smfShowIcon     EQU         31                        ; show icon even if only one script
  259. smfDualCaret    EQU         30                        ; use dual caret for mixed direction text
  260.  
  261. ; Roman script constants.
  262.  
  263. romanVers        EQU         $0101                    ; version number.
  264. romanSysFond    EQU         $3FFF                    ; system font id number.
  265. romanAppFond    EQU         3                        ; application font id number.
  266. romanFlags        EQU         1<<smsfIntellCP++1<<smsfSingByte++1<<smsfNatCase
  267.                                                         ; roman settings
  268.  
  269. ; Script Manager font equates.
  270.  
  271. smFondStart     EQU         $4000                    ; start from 16K.
  272. smFondEnd        EQU         $C000                    ; past end of range at 48K.
  273.  
  274. ; Macintosh character set extensions
  275.  
  276. diaeresisUprY    EQU         $D9                     ; Ÿ
  277. fraction        EQU         $DA                     ; ⁄
  278. intlCurrency    EQU         $DB                     ; €
  279. leftSingGuillemet EQU        $DC                     ; ‹
  280. rightSingGuillemet EQU        $DD                     ;
  281. fiLigature        EQU         $DE                     ; fi
  282. flLigature        EQU         $DF                     ; fl
  283. dblDagger        EQU         $E0                     ; ‡
  284. centeredDot     EQU         $E1                     ; ·
  285. baseSingQuote    EQU         $E2                     ; ‚
  286. baseDblQuote    EQU         $E3                     ; „
  287. perThousand     EQU         $E4                     ; ‰
  288. circumflexUprA    EQU         $E5                     ; Â
  289. circumflexUprE    EQU         $E6                     ; Ê
  290. acuteUprA        EQU         $E7                     ; Á
  291. diaeresisUprE    EQU         $E8                     ; Ë
  292. graveUprE        EQU         $E9                     ; È
  293. acuteUprI        EQU         $EA                     ; Í
  294. circumflexUprI    EQU         $EB                     ; Î
  295. diaeresisUprI    EQU         $EC                     ; Ï
  296. graveUprI        EQU         $ED                     ; Ì
  297. acuteUprO        EQU         $EE                     ; Ó
  298. circumflexUprO    EQU         $EF                     ; Ô
  299. appleLogo        EQU         $F0                     ; 
  300. graveUprO        EQU         $F1                     ; Ò
  301. acuteUprU        EQU         $F2                     ; Ú
  302. circumflexUprU    EQU         $F3                     ; Û
  303. graveUprU        EQU         $F4                     ; Ù
  304. dotlessLwrI     EQU         $F5                     ; ı
  305. circumflex        EQU         $F6                     ; ˆ
  306. tilde            EQU         $F7                     ; ˜
  307. macron            EQU         $F8                     ; ¯
  308. breve            EQU         $F9                     ; ˘
  309. overDot         EQU         $FA                     ; ˙
  310. ring            EQU         $FB                     ; ˚
  311. cedilla         EQU         $FC                     ; ¸
  312. doubleAcute     EQU         $FD                     ; ˝
  313. ogonek            EQU         $FE                     ; ˛
  314. hachek            EQU         $FF                     ; ˇ
  315.  
  316. ; -----------------------------------------------------------------------------
  317. ; Bundle declarations
  318. ; -----------------------------------------------------------------------------
  319. ; Record declaration for international configuration resource (type itlc).
  320.  
  321. ItlcRecord        record        0
  322. itlcSystem        ds.w        1                        ; default system script.
  323. itlcReserved    ds.w        1                        ; reserved
  324. itlcFontForce    ds.b        1                        ; default font force flag.
  325. itlcIntlForce    ds.b        1                        ; default intl force flag.
  326. itlcOldKybd     ds.b        1                        ; old keyboard
  327. itlcFlags        ds.b        1                        ; general flags
  328. itlcReserved2    ds.b        40                        ; for future use
  329. itlcSize        equ         *                        ; size of script itlc.
  330.                 endr
  331.  
  332. ; Record declaration for international bundle resource (type itlb).
  333.  
  334. ItlbRecord        record        0
  335. itlbNumber        ds.w        1                        ; ITL0 id number.
  336. itlbDate        ds.w        1                        ; ITL1 id number.
  337. itlbSort        ds.w        1                        ; ITL2 id number.
  338. itlbFlags        ds.w        1                        ; Script Flags.
  339. itlbToken        ds.w        1                        ; ITL4 id number.
  340. itlbReserved3    ds.w        1                        ; reserved.
  341. itlbLang        ds.w        1                        ; cur language for script
  342. itlbNumRep        ds.b        1                        ; number representation code
  343. itlbDateRep     ds.b        1                        ; date representation code
  344. itlbKeys        ds.w        1                        ; KCHR id number.
  345. itlbIcon        ds.w        1                        ; SICN id number.
  346. itlbSize        equ         *                        ; size of bundle.
  347.                 endr
  348.  
  349. ; itl2 routine vector offsets.
  350.  
  351. initHook        EQU         0
  352. fetchHook        EQU         2
  353. vernierHook     EQU         4
  354. projectHook     EQU         6
  355. rsvdHook        EQU         8
  356. exitHook        EQU         10
  357.  
  358. ; String data structure for itl2 stack frames.
  359.  
  360. IUStrData        record        0
  361. curChar         ds.w        1                        ; current character.
  362. mapChar         ds.w        1                        ; projected character.
  363. decChar         ds.w        1                        ; decision char for weak equality.
  364. bufChar         ds.b        1                        ; buffer for expansion.
  365. justAfter        ds.b        1                        ; boolean for AE vs ligature-AE.
  366. ignChar         ds.b        1                        ; flag: ignore char.
  367. noFetch         ds.b        1                        ; flag: no fetch of next.
  368. strCnt            ds.w        1                        ; length word.
  369. strPtr            ds.l        1                        ; current ptr to string.
  370.                 endr
  371.  
  372. ; Stack frame for itl2 routines.
  373.  
  374. IUSortFrame     record        {oldA6},decrement
  375. result            ds.w        1
  376. aStrText        ds.l        1
  377. bStrText        ds.l        1
  378. aStrLen         ds.w        1
  379. bStrLen         ds.w        1
  380. return            ds.l        1
  381. oldA6            ds.l        1
  382. aInfo            ds            IUStrData
  383. bInfo            ds            IUStrData
  384. wantMag         ds.b        1                        ; 1-MagStrig 0-MagIdString.
  385. weakEq            ds.b        1                        ; Signals at most weak equality.
  386. msLock            ds.b        1                        ; high byte of master ptr.
  387. weakMag         ds.b        1                        ; -1 weak compare, 1 strong compare.
  388. supStorage        ds.b        18                        ; extra storage.
  389. weakAPtr        ds.l        1                        ; sup. pointer
  390. weakBPtr        ds.l        1                        ; sup. pointer
  391. lkSize            equ         *                        ; frame size.
  392. paramBytes        equ         aStrText-return
  393.                 endr
  394.  
  395. LongDateRec     record        0                        ; zero any fields not used!
  396. era             ds.w        1
  397. year            ds.w        1
  398. month            ds.w        1
  399. day             ds.w        1
  400. hour            ds.w        1
  401. minute            ds.w        1
  402. second            ds.w        1
  403. dayOfWeek        ds.w        1
  404. dayOfYear        ds.w        1
  405. weekOfYear        ds.w        1
  406. pm                ds.w        1
  407. ldReserved        ds.w        3
  408. LongDateRecSize   equ        *
  409.                 endR
  410.  
  411. LongDateTime    record        0                        ; record for comp type
  412. highLong        ds.l        1
  413. lowLong         ds.l        1
  414.                 endR
  415.  
  416. ; date equates constants
  417.  
  418. LongDateField    record        0                        ;DateField: enum type
  419. eraField        ds.b        1
  420. yearField        ds.b        1
  421. monthField        ds.b        1
  422. dayField        ds.b        1
  423. hourField        ds.b        1
  424. minuteField     ds.b        1
  425. secondField     ds.b        1
  426. dayOfWeekField    ds.b        1
  427. dayOfYearField    ds.b        1
  428. weekOfYearField   ds.b        1
  429. pmField         ds.b        1
  430. res1Field        ds.b        1
  431. res2Field        ds.b        1
  432. res3Field        ds.b        1
  433.  
  434. maxDateField    equ         pmField                 ; currently largest used field
  435.  
  436. eraMask         equ         1<<eraField
  437. yearMask        equ         1<<yearField
  438. monthMask        equ         1<<monthField
  439. dayMask         equ         1<<dayField
  440. hourMask        equ         1<<hourField
  441. minuteMask        equ         1<<minuteField
  442. secondMask        equ         1<<secondField
  443. dayOfWeekMask    equ         1<<dayOfWeekField
  444. dayOfYearMask    equ         1<<dayOfYearField
  445. weekOfYearMask    equ         1<<weekOfYearField
  446. pmMask            equ         1<<pmField
  447.  
  448. dateStdMask     equ         eraMask++yearMask++monthMask++dayMask++hourMask++minuteMask++secondMask
  449.                 endR
  450.  
  451. smallDateBit    EQU         31
  452. validDateFields   EQU        -1
  453.  
  454.  
  455. TogglePB        record        0
  456. togFlags:        ds.l        1                        ; longint; {default $7E}
  457. amChars:        ds.l        1                        ; resType; {from intl0, but uppercased}
  458. pmChars:        ds.l        1                        ; ResType; {ditto}
  459. reserved:        ds.l        4                        ; array [0..3] of Longint;
  460.                 endR
  461.  
  462. ToggleResults    record        0
  463. toggleUndefined   ds.b        1
  464. toggleOk        ds.b        1
  465. toggleBadField    ds.b        1
  466. toggleBadDelta    ds.b        1
  467. toggleBadChar    ds.b        1
  468. toggleUnknown    ds.b        1
  469. toggleBadNum    ds.b        1                        ;{can't use char as number}
  470. toggleErr3        ds.b        1                        ;{reserved}
  471. toggleErr4        ds.b        1                        ;{reserved}
  472. toggleErr5        ds.b        1                        ;{reserved}
  473.                 endR
  474.  
  475. MachineLocation   record    0
  476. latitude        ds.l        1                        ;fract
  477. longitude        ds.l        1                        ;fract
  478. dlsDelta        ds.b        1                        ;signed byte
  479. gmtDelta        ds.b        3                        ;3 byte signed integer
  480.                 endR
  481.  
  482.  
  483.  
  484. ; String2Date status values
  485.  
  486. fatalDateTime    EQU         $8000                    ; String2Date and String2Time mask to a fatal error
  487. longDateFound    EQU         1                        ; String2Date mask to long date found
  488. leftOverChars    EQU         2                        ; String2Date & Time mask to warn of left over characters
  489. sepNotIntlSep    EQU         4                        ; String2Date & Time mask to warn of non standard separators
  490. fieldOrderNotIntl EQU        8                        ; String2Date & Time mask to warn of non standard field order
  491. extraneousStrings EQU        16                        ; String2Date & Time mask to warn of unparsable strings in text
  492. tooManySeps     EQU         32                        ; String2Date & Time mask to warn of too many separators
  493. sepNotConsistent  EQU        64                        ; String2Date & Time mask to warn of inconsistent separators
  494. tokenErr        EQU         $8100                    ; String2Date & Time mask to say that tokenizer err encountered
  495. cantReadUtilities EQU        $8200
  496. dateTimeNotFound  EQU        $8400                    ; String2Date mask to say that date was not found
  497. dateTimeInvalid   EQU        $8800                    ; Invalid time/date e.g. 13:61PM
  498.  
  499. DateOrders        RECORD        0,INCREMENT
  500. mdy             DS.B        1
  501. dmy             DS.B        1
  502. ymd             DS.B        1
  503. myd             DS.B        1
  504. dym             DS.B        1
  505. ydm             DS.B        1
  506.                 ENDR
  507.  
  508. ;  TokenType values
  509.  
  510. tokenIntl        EQU         4                        ; the itl resource number of the tokenizer
  511. tokenEmpty        EQU         -1
  512. tokenUnknown    EQU         0
  513. tokenWhite        EQU         1
  514. tokenLeftLit    EQU         2
  515. tokenRightLit    EQU         3
  516. tokenAlpha        EQU         4
  517. tokenNumeric    EQU         5
  518. tokenNewLine    EQU         6
  519. tokenLeftComment  EQU        7
  520. tokenRightComment EQU        8
  521. tokenLiteral    EQU         9
  522. tokenEscape     EQU         10
  523. tokenAltNum     EQU         11
  524. tokenRealNum    EQU         12
  525. tokenAltReal    EQU         13
  526. tokenReserve1    EQU         14
  527. tokenReserve2    EQU         15
  528. tokenLeftParen    EQU         16
  529. tokenRightParen   EQU        17
  530. tokenLeftBracket EQU        18
  531. tokenRightBracket EQU        19
  532. tokenLeftCurly    EQU         20
  533. tokenRightCurly   EQU        21
  534. tokenLeftEnclose  EQU        22
  535. tokenRightEnclose EQU        23
  536. tokenPlus        EQU         24
  537. tokenMinus        EQU         25
  538. tokenAsterisk    EQU         26
  539. tokenDivide     EQU         27
  540. tokenPlusMinus    EQU         28
  541. tokenSlash        EQU         29
  542. tokenBackSlash    EQU         30
  543. tokenLess        EQU         31
  544. tokenGreat        EQU         32
  545. tokenEqual        EQU         33
  546. tokenLessEqual2   EQU        34
  547. tokenLessEqual1   EQU        35
  548. tokenGreatEqual2  EQU        36
  549. tokenGreatEqual1  EQU        37
  550. token2Equal     EQU         38
  551. tokenColonEqual   EQU        39
  552. tokenNotEqual    EQU         40
  553. tokenLessGreat    EQU         41
  554. tokenExclamEqual  EQU        42
  555. tokenExclam     EQU         43
  556. tokenTilda        EQU         44
  557. tokenComma        EQU         45
  558. tokenPeriod     EQU         46
  559. tokenLeft2Quote   EQU        47
  560. tokenRight2Quote  EQU        48
  561. tokenLeft1Quote   EQU        49
  562. tokenRight1Quote  EQU        50
  563. token2Quote     EQU         51
  564. token1Quote     EQU         52
  565. tokenSemicolon    EQU         53
  566. tokenPercent    EQU         54
  567. tokenCarat        EQU         55
  568. tokenUnderline    EQU         56
  569. tokenAmpersand    EQU         57
  570. tokenAtSign     EQU         58
  571. tokenBar        EQU         59
  572. tokenQuestion    EQU         60
  573. tokenPi         EQU         61
  574. tokenRoot        EQU         62
  575. tokenSigma        EQU         63
  576. tokenIntegral    EQU         64
  577. tokenMicro        EQU         65
  578. tokenCapPi        EQU         66
  579. tokenInfinity    EQU         67
  580. tokenColon        EQU         68
  581. tokenHash        EQU         69
  582. tokenDollar     EQU         70
  583. tokenNoBreakSpace EQU        71
  584. tokenNil        EQU         127
  585. delimPad        EQU         -2
  586.  
  587. TokenResults    record        0
  588. tokenOK         ds.b        1
  589. tokenOverflow    ds.b        1
  590. stringOverflow    ds.b        1
  591. badDelim        ds.b        1
  592. badEnding        ds.b        1
  593. crash            ds.b        1
  594.                 endr
  595.  
  596. TokenBlock        RECORD        0,INCR
  597. source            ds.l        1
  598. sourceLength    ds.l        1
  599. tokenList        ds.l        1
  600. tokenLength     ds.l        1
  601. tokenCount        ds.l        1
  602. stringList        ds.l        1
  603. stringLength    ds.l        1
  604. stringCount     ds.l        1
  605. doString        ds.b        1
  606. doAppend        ds.b        1
  607. doAlphanumeric    ds.b        1
  608. doNest            ds.b        1
  609. leftDelims        ds.w        2
  610. rightDelims     ds.w        2
  611. leftComment     ds.l        2
  612. rightComment    ds.l        2
  613. escapeCode        ds.w        1
  614. decimalCode     ds.w        1
  615. itlResource     ds.l        1
  616. reserved        ds.l        8                        ;must be zero!
  617.                 ENDR
  618.  
  619. TokenRec        RECORD        0,INCR
  620. theToken        ds.w        1
  621. position        ds.l        1
  622. length            ds.l        1
  623. stringPosition    ds.l        1
  624. tokenRecSize    equ         *
  625.                 ENDR
  626.  
  627. UntokenTable    Record        0, INCR
  628. len             ds.w        1
  629. lastToken        ds.w        1
  630. index            ds.w        256                     ;index table; last = lastToken
  631. ;list of pascal strings here. index pointers are from front of table
  632.                 Endr
  633.  
  634. ; Trap routine selectors: script manager 1.0
  635.  
  636.  
  637. smFontScript    EQU         0
  638. smIntlScript    EQU         2
  639. smKybdScript    EQU         4
  640. smFont2Script    EQU         6
  641. smGetEnvirons    EQU         8
  642. smSetEnvirons    EQU         10
  643. smGetScript     EQU         12
  644. smSetScript     EQU         14
  645. smHighCall        EQU         smSetScript             ; boundry between script mgr & script systems calls
  646. smCharByte        EQU         16
  647. smCharType        EQU         18
  648. smPixel2Char    EQU         20
  649. smChar2Pixel    EQU         22
  650. smTranslit        EQU         24
  651. smFindWord        EQU         26
  652. smHiliteText    EQU         28
  653. smDrawJust        EQU         30
  654. smMeasureJust    EQU         32
  655. smParseTable    EQU         34
  656.  
  657. ; Full Trap routine selectors: script manager 1.0
  658.  
  659. smSelFontScript   EQU        (1<<31)++($0200<<16)++smFontScript
  660. smSelIntlScript   EQU        (1<<31)++($0200<<16)++smIntlScript
  661. smSelKybdScript   EQU        (1<<31)++($0002<<16)++smKybdScript
  662. smSelFont2Script  EQU        (1<<31)++($0202<<16)++smFont2Script
  663. smSelGetEnvirons  EQU        (1<<31)++($0402<<16)++smGetEnvirons
  664. smSelSetEnvirons  EQU        (1<<31)++($0206<<16)++smSetEnvirons
  665. smSelGetScript    EQU         (1<<31)++($0404<<16)++smGetScript
  666. smSelSetScript    EQU         (1<<31)++($0208<<16)++smSetScript
  667. smSelCharType    EQU         (1<<31)++($0206<<16)++smCharType
  668. smSelCharByte    EQU         (1<<31)++($0206<<16)++smCharByte
  669. smSelPixel2Char   EQU        (1<<31)++($020E<<16)++smPixel2Char
  670. smSelChar2Pixel   EQU        (1<<31)++($020C<<16)++smChar2Pixel
  671. smSelTranslit    EQU         (1<<31)++($020E<<16)++smTranslit
  672. smSelFindWord    EQU         (1<<31)++($0012<<16)++smFindWord
  673. smSelHiliteText   EQU        (1<<31)++($000E<<16)++smHiliteText
  674. smSelDrawJust    EQU         (1<<31)++($0008<<16)++smDrawJust
  675. smSelMeasureJust  EQU        (1<<31)++($000C<<16)++smMeasureJust
  676. smSelParseTable   EQU        (1<<31)++($0204<<16)++smParseTable
  677.  
  678. ; Trap routine macros.
  679.  
  680.                 macro
  681.                 _FontScript
  682.                 move.l        #smSelFontScript,-(sp)
  683.                 _ScriptUtil
  684.                 endm
  685.  
  686.                 macro
  687.                 _IntlScript
  688.                 move.l        #smSelIntlScript,-(sp)
  689.                 _ScriptUtil
  690.                 endm
  691.  
  692.                 macro
  693.                 _KeyScript
  694.                 move.l        #smSelKybdScript,-(sp)
  695.                 _ScriptUtil
  696.                 endm
  697.  
  698.                 macro
  699.                 _Font2Script
  700.                 move.l        #smSelFont2Script,-(sp)
  701.                 _ScriptUtil
  702.                 endm
  703.  
  704.                 macro
  705.                 _GetEnvirons
  706.                 move.l        #smSelGetEnvirons,-(sp)
  707.                 _ScriptUtil
  708.                 endm
  709.  
  710.                 macro
  711.                 _SetEnvirons
  712.                 move.l        #smSelSetEnvirons,-(sp)
  713.                 _ScriptUtil
  714.                 endm
  715.  
  716.                 macro
  717.                 _GetScript
  718.                 move.l        #smSelGetScript,-(sp)
  719.                 _ScriptUtil
  720.                 endm
  721.  
  722.                 macro
  723.                 _SetScript
  724.                 move.l        #smSelSetScript,-(sp)
  725.                 _ScriptUtil
  726.                 endm
  727.  
  728.                 macro
  729.                 _CharByte
  730.                 move.l        #smSelCharByte,-(sp)
  731.                 _ScriptUtil
  732.                 endm
  733.  
  734.                 macro
  735.                 _CharType
  736.                 move.l        #smSelCharType,-(sp)
  737.                 _ScriptUtil
  738.                 endm
  739.  
  740.                 macro
  741.                 _Pixel2Char
  742.                 move.l        #smSelPixel2Char,-(sp)
  743.                 _ScriptUtil
  744.                 endm
  745.  
  746.                 macro
  747.                 _Char2Pixel
  748.                 move.l        #smSelChar2Pixel,-(sp)
  749.                 _ScriptUtil
  750.                 endm
  751.  
  752.                 macro
  753.                 _Transliterate
  754.                 move.l        #smSelTranslit,-(sp)
  755.                 _ScriptUtil
  756.                 endm
  757.  
  758.                 macro
  759.                 _FindWord
  760.                 move.l        #smSelFindWord,-(sp)
  761.                 _ScriptUtil
  762.                 endm
  763.  
  764.                 macro
  765.                 _HiliteText
  766.                 move.l        #smSelHiliteText,-(sp)
  767.                 _ScriptUtil
  768.                 endm
  769.  
  770.                 macro
  771.                 _DrawJust
  772.                 move.l        #smSelDrawJust,-(sp)
  773.                 _ScriptUtil
  774.                 endm
  775.  
  776.                 macro
  777.                 _MeasureJust
  778.                 move.l        #smSelMeasureJust,-(sp)
  779.                 _ScriptUtil
  780.                 endm
  781.  
  782.                 macro
  783.                 _ParseTable
  784.                 move.l        #smSelParseTable,-(sp)
  785.                 _ScriptUtil
  786.                 endm
  787.  
  788. ; -----------------------------------------------------------------------------
  789. ; Macros for the Script Manager trap call: Version 1.1
  790. ; -----------------------------------------------------------------------------
  791.  
  792.                 Macro
  793.                 DefSMgrRoutine &name,&selector,&argSize,&returnSize
  794.                 sm&name:    equ &selector**$FFFF
  795.                 smSel&name: equ (1<<31)++(&returnSize<<24)++(&argSize<<16)++sm&name
  796.                 endm
  797.  
  798. ; general script manager routines
  799.  
  800.                 DefSmgrRoutine StyledLineBreak, -2,28,2
  801.                 DefSmgrRoutine GetFormatOrder, -4,18,0
  802.                 DefSmgrRoutine IntlTokenize, -6,4,2
  803.  
  804.                 DefSmgrRoutine InitDateCache, -8,4,2
  805.                 DefSmgrRoutine String2Date, -10,20,2
  806.                 DefSmgrRoutine String2Time, -12,20,2
  807.  
  808.                 DefSmgrRoutine LongDate2Secs, -14,8,0
  809.                 DefSmgrRoutine LongSecs2Date, -16,8,0
  810.                 DefSmgrRoutine ToggleDate, -18,14,2
  811.  
  812.                 DefSmgrRoutine Str2Format, -20,12,2
  813.                 DefSmgrRoutine Format2Str, -22,16,2
  814.                 DefSmgrRoutine FormatX2Str, -24,16,2
  815.                 DefSmgrRoutine FormatStr2X, -26,16,2
  816.                 DefSmgrRoutine ValidDate, -28,12,2
  817.  
  818. smLowCall        EQU         smValidDate             ; lowest script manager routine
  819.  
  820. ; FormatClass enumeration
  821.  
  822. fPositive        EQU         0
  823. fNegative        EQU         1
  824. fZero            EQU         2
  825.  
  826. ; FormatResultType enumeration
  827.  
  828. fFormatOK        EQU         0
  829. fBestGuess        EQU         1
  830. fOutOfSynch     EQU         2
  831. fSpuriousChars    EQU         3
  832. fMissingDelimiter EQU        4
  833. fExtraDecimal    EQU         5
  834. fMissingLiteral   EQU        6
  835. fExtraExp        EQU         7
  836. fFormatOverflow   EQU        8
  837. fFormStrIsNAN    EQU         9
  838. fBadPartsTable    EQU         10
  839. fExtraPercent    EQU         11
  840. fExtraSeparator   EQU        12
  841. fEmptyFormatString EQU        13
  842.  
  843. WideChar        record        0,increment
  844. a                ds.b        2                        ; PACKED ARRAY[0..1] OF CHAR
  845.                 ORG         a
  846. b                ds.w        1                        ; INTEGER
  847.                 endr
  848.  
  849. WideCharArr     record        0,increment
  850. size            ds.w        1                        ; INTEGER
  851. data            ds.w        10                        ; PACKED ARRAY[0..9] OF WideChar
  852.                 endr
  853.  
  854. fVNumber        EQU         0                        ; first version of NumFormatString
  855.  
  856. NumFormatString   record    0,increment
  857. fLength         ds.b        1                        ; length of format String
  858. fVersion        ds.b        1                        ; version number
  859. data            ds.b        254                     ; private data (see nScriptEqu.priv)
  860.                 endr
  861.  
  862.  
  863. Itl4Rec         record        0,increment
  864. flags            ds.w        1
  865. resourceType    ds.l        1
  866. resourceNum     ds.w        1
  867. version         ds.w        1
  868. resHeader1        ds.l        1
  869. resHeader2        ds.l        1
  870. numTables        ds.w        1                        ; one-based.
  871. mapOffset        ds.l        1                        ; offsets are from record start
  872. strOffset        ds.l        1
  873. fetchOffset     ds.l        1
  874. unTokenOffset    ds.l        1
  875. defPartsOffset    ds.l        1
  876. resOffset6        ds.l        1
  877. resOffset7        ds.l        1
  878. resOffset8        ds.l        1
  879. itl4HeaderSize    equ         *
  880. ; the rest is data pointed to by offsets.
  881.                 endr
  882.  
  883. ;Number format equates
  884.  
  885. tokLeftQuote    EQU         1
  886. tokRightQuote    EQU         2
  887. tokLeadPlacer    EQU         3
  888. tokLeader        EQU         4
  889. tokNonLeader    EQU         5
  890. tokZeroLead     EQU         6
  891. tokPercent        EQU         7
  892. tokPlusSign     EQU         8
  893. tokMinusSign    EQU         9
  894. tokThousands    EQU         10
  895. tokSeparator    EQU         12                        ; 11 is reserved
  896. tokEscape        EQU         13
  897. tokDecPoint     EQU         14
  898. tokEPlus        EQU         15
  899. tokEMinus        EQU         16
  900. tokMaxSymbols    EQU         31
  901.  
  902. NumberParts     record        0,increment
  903. version         ds.w        1                        ; integer
  904. data            ds.w        tokMaxSymbols            ; ARRAY[tokLeftQuote..tokMaxSymbols] OF WideChar
  905. pePlus            ds            WideCharArr             ; 64
  906. peMinus         ds            WideCharArr             ; 86
  907. peMinusPlus     ds            WideCharArr             ; 108
  908. altNumTable     ds            WideCharArr             ; 130
  909. reserved        ds.b        20
  910. numberPartsSize   equ        *
  911. curNumberPartsVersion equ    1
  912.                 endr
  913.  
  914.  
  915. FVector         record        0,increment
  916. start            ds.w        1                        ; INTEGER
  917. length            ds.w        1                        ; INTEGER
  918.                 endr
  919.  
  920. TripleInt        record        0,increment
  921. zzz1            ds            FVector
  922. zzz2            ds            FVector
  923. zzz3            ds            FVector
  924.                 endr
  925.  
  926. ScriptRunStatus   record    0,increment
  927. script            ds.b        1
  928. variant         ds.b        1
  929.                 endr
  930.  
  931. ;------------------------------------------------------------------------------
  932.  
  933. ; script-specific routines
  934.  
  935.                 DefSmgrRoutine PortionText, 36,8,4
  936.                 DefSmgrRoutine FindScriptRun, 38,12,2
  937.                 DefSmgrRoutine VisibleLength, 40,8,4
  938.  
  939. sisHighCall     EQU         smVisibleLength         ; highest script routine
  940.  
  941. ;------------------------------------------------------------------------------
  942. ; Trap routine macros: script manager 2.0
  943.  
  944.                 macro
  945.                 _GetFormatOrder
  946.                 move.l        #smSelFormatOrder,-(sp)
  947.                 _ScriptUtil
  948.                 endm
  949.  
  950.                 macro
  951.                 _StyledLineBreak
  952.                 move.l        #smSelStyledLineBreak,-(sp)
  953.                 _ScriptUtil
  954.                 endm
  955.  
  956.                 macro
  957.                 _IntlTokenize
  958.                 move.l        #smSelIntlTokenize,-(sp)
  959.                 _ScriptUtil
  960.                 endm
  961.  
  962.                 macro
  963.                 _InitDateCache
  964.                 move.l        #smSelInitDateCache,-(sp)
  965.                 _ScriptUtil
  966.                 endm
  967.  
  968.                 macro
  969.                 _String2Date
  970.                 move.l        #smSelString2Date,-(sp)
  971.                 _ScriptUtil
  972.                 endm
  973.  
  974.                 macro
  975.                 _String2Time
  976.                 move.l        #smSelString2Time,-(sp)
  977.                 _ScriptUtil
  978.                 endm
  979.  
  980.                 macro
  981.                 _LongSecs2Date
  982.                 move.l        #smSelLongSecs2Date,-(sp)
  983.                 _ScriptUtil
  984.                 endm
  985.  
  986.                 macro
  987.                 _LongDate2Secs
  988.                 move.l        #smSelLongDate2Secs,-(sp)
  989.                 _ScriptUtil
  990.                 endm
  991.  
  992.                 macro
  993.                 _Str2Format
  994.                 move.l        #smSelStr2Format,-(sp)
  995.                 _ScriptUtil
  996.                 endm
  997.  
  998.                 macro
  999.                 _Format2Str
  1000.                 move.l        #smSelFormat2Str,-(sp)
  1001.                 _ScriptUtil
  1002.                 endm
  1003.  
  1004.                 macro
  1005.                 _FormatX2Str
  1006.                 move.l        #smSelFormatX2Str,-(sp)
  1007.                 _ScriptUtil
  1008.                 endm
  1009.  
  1010.                 macro
  1011.                 _FormatStr2X
  1012.                 move.l        #smSelFormatStr2X,-(sp)
  1013.                 _ScriptUtil
  1014.                 endm
  1015.  
  1016.                 macro
  1017.                 _ValidDate
  1018.                 move.l        #smSelValidDate,-(sp)
  1019.                 _ScriptUtil
  1020.                 endm
  1021.  
  1022.                 macro
  1023.                 _ToggleDate
  1024.                 move.l        #smSelToggleDate,-(sp)
  1025.                 _ScriptUtil
  1026.                 endm
  1027.  
  1028.                 macro
  1029.                 _PortionText
  1030.                 move.l        #smSelPortionText,-(sp)
  1031.                 _ScriptUtil
  1032.                 endm
  1033.  
  1034.                 macro
  1035.                 _FindScriptRun
  1036.                 move.l        #smSelFindScriptRun,-(sp)
  1037.                 _ScriptUtil
  1038.                 endm
  1039.  
  1040.                 macro
  1041.                 _ReadLocation
  1042.                 movea.l     (sp)+,A0
  1043.                 move.l        #$000C00E4,D0
  1044.                 _ReadXPRam
  1045.                 endm
  1046.  
  1047.                 macro
  1048.                 _WriteLocation
  1049.                 movea.l     (sp)+,A0
  1050.                 move.l        #$000C00E4,D0
  1051.                 _WriteXPRam
  1052.                 endm
  1053.  
  1054.                 macro
  1055.                 _VisibleLength
  1056.                 move.l        #smSelVisibleLength,-(sp)
  1057.                 _ScriptUtil
  1058.                 endm
  1059.  
  1060.